今天要繼續來介紹一下用於數學運算的函式,NumPy 太多用途了,真的非常需要好好的了解 NumPy 的各種語法。
今天會介紹 sum() 和 power() 和 transpose()。
把輸入的元素相加起來的函式,完整語法如下:
np.sum(arr, axis, dtype, out)
arr:輸入的 arrayaxis:是否要根據 行 或 列 相加dtype:資料型態out:如果有 out,會將結果儲存在 out 內,這個 array 的大小必須和輸出的一樣import numpy as np
array1 = np.array([1, 2, 3, 4, 5.2])
x = np.sum(array1, dtype = np.float32)
print(x)
# 輸出
# 15.2
y = np.sum(array1, dtype = np.uint8)
print(y)
# 輸出
# 15
axis:底下用圖片來示意 axis = 0 或 axis = 1 的方向,他會沿著指定方向去相加出結果,不會全部加成一個常數而已。
# axis = 0
array1 = np.array([[1, 2, 3, 4],
                   [5, 6, 7, 8],
                   [9, 10, 11, 12]])
x = np.sum(array1, axis = 0)
print(x)
# 輸出
# [15 18 21 24]

# axis = 0
array1 = np.array([[1, 2, 3, 4],
                   [5, 6, 7, 8],
                   [9, 10, 11, 12]])
x = np.sum(array1, axis = 1)
print(x)
# 輸出
# [10 26 42]

先來看一下語法:np.power(x1, x2)
把輸入的 arr 求 n 次方,x1 是 array,x2 可以是常數n 也可以是另一個 array,但是 x2 的行或列至少要有一個跟 x1 一樣
把 x1 內的每個元素都 3 次方。
x1 = np.array([1, 2, 3, 4])
z = np.power(x1, 3)
print(z)
# 輸出
# [ 1  8 27 64]
把 x1 內的每個元素對 x2 的元素取次方。
x1 = np.array([1, 2, 3, 4])
x2 = np.array([1, 2, 3, 4])
z = np.power(x1, x2)
print(z)
# 輸出
# [  1   4  27 256]
把 x1 內的每個元素對 x2 的元素取次方,並且 x2 有兩個 row 所以輸出也是兩個 row。
x1 = np.array([1, 2, 3, 4])
x2 = np.array([[1, 2, 3, 4],
               [6, 6, 6, 6]])
z = np.power(x1, x2)
print(z)
# 輸出
# [[   1    4   27  256]
#  [   1   64  729 4096]]
x1 = np.array([[4],
               [2]])
x2 = np.array([[1, 2, 3],
              [4, 5, 6]])
z = np.power(x1, x2)
print(z)
# 輸出
# [[ 4 16 64]
#  [16 32 64]]
取得輸入 array 的轉置矩陣。
array1 = np.array([[1, 2, 3, 4],
                   [6, 6, 6, 6]])
x = np.transpose(array1)
print(x)
# 輸出
# [[1 6]
#  [2 6]
#  [3 6]
#  [4 6]]
NumPy 的介紹就先介紹到這邊了,祝大家在學習的路上都能學到所需的知識。
待續...